package com.thread.book.book2;

import java.util.concurrent.atomic.AtomicIntegerArray;

public class AtomicArray01 {

    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5};
        //AtomicIntegerArray会将当前数组复制一份,修改不会影响原来数组
        AtomicIntegerArray ata = new AtomicIntegerArray(arr);
        //下标为1的数加2并返回
        ata.addAndGet(1, 2);
        //比较下标为3的元素是否为4,是设置为9
        ata.compareAndSet(3, 4, 9);
        //返回原值并设置值
        ata.getAndSet(4, 9);
        //函数式接口IntBinaryOperator: 接受两个int,返回一个int
        //返回原值并计算,需要一个function函数,将下标0的值与5相加
        ata.getAndAccumulate(0, 5, (x, y) -> x + y);
        System.out.println(ata.get(0));//6
        for (int i : arr) {
            System.out.print(i);//12345
        }
    }
}
